<script>
import publics from "./public/public.js";
export default {
  data() {
    return {};
  },
  created() {
    // 调用API从本地缓存中获取数据
    /*
     * 平台 api 差异的处理方式:  api 方法统一挂载到 mpvue 名称空间, 平台判断通过 mpvuePlatform 特征字符串
     * 微信：mpvue === wx, mpvuePlatform === 'wx'
     * 头条：mpvue === tt, mpvuePlatform === 'tt'
     * 百度：mpvue === swan, mpvuePlatform === 'swan'
     * 支付宝(蚂蚁)：mpvue === my, mpvuePlatform === 'my'
     */

    let logs;
    if (mpvuePlatform === "my") {
      logs = mpvue.getStorageSync({ key: "logs" }).data || [];
      logs.unshift(Date.now());
      mpvue.setStorageSync({
        key: "logs",
        data: logs
      });
    } else {
      logs = mpvue.getStorageSync("logs") || [];
      logs.unshift(Date.now());
      mpvue.setStorageSync("logs", logs);
    }
  },
  methods: {
    //小程序更新的方法
    appSet() {
      if (wx.canIUse("getUpdateManager")) {
        const updateManager = wx.getUpdateManager();
        updateManager.onCheckForUpdate(function(res) {
          console.log("onCheckForUpdate====", res);
          // 请求完新版本信息的回调
          if (res.hasUpdate) {
            console.log("res.hasUpdate====");
            updateManager.onUpdateReady(function() {
              wx.showModal({
                title: "更新提示",
                content: "新版本已经准备好，是否重启应用？",
                success: function(res) {
                  console.log("success====", res);
                  // res: {errMsg: "showModal: ok", cancel: false, confirm: true}
                  if (res.confirm) {
                    // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                    updateManager.applyUpdate();
                  }
                }
              });
            });
            updateManager.onUpdateFailed(function() {
              // 新的版本下载失败
              wx.showModal({
                title: "已经有新版本了哟~",
                content:
                  "新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~"
              });
            });
          }
        });
      }
    },
    /* 小程序更新的方法 */
    autoUpdate: function() {
      // console.log(new Date());
      var self = this;
      // 获取小程序更新机制兼容
      if (wx.canIUse("getUpdateManager")) {
        const updateManager = wx.getUpdateManager();
        //1. 检查小程序是否有新版本发布
        updateManager.onCheckForUpdate(function(res) {
          // 请求完新版本信息的回调
          if (res.hasUpdate) {
            //2. 小程序有新版本，则静默下载新版本，做好更新准备
            updateManager.onUpdateReady(function() {
              console.log(new Date());
              wx.showModal({
                title: "更新提示",
                content: "新版本已经准备好，是否重启应用？",
                success: function(res) {
                  if (res.confirm) {
                    //3. 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                    updateManager.applyUpdate();
                  } else if (res.cancel) {
                    //如果需要强制更新，则给出二次弹窗，如果不需要，则这里的代码都可以删掉了
                    wx.showModal({
                      title: "温馨提示~",
                      content:
                        "本次版本更新涉及到新的功能添加，旧版本无法正常访问的哦~",
                      success: function(res) {
                        self.autoUpdate();
                        return;
                        //第二次提示后，强制更新
                        if (res.confirm) {
                          // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                          updateManager.applyUpdate();
                        } else if (res.cancel) {
                          //重新回到版本更新提示
                          self.autoUpdate();
                        }
                      }
                    });
                  }
                }
              });
            });
            updateManager.onUpdateFailed(function() {
              // 新的版本下载失败
              wx.showModal({
                title: "已经有新版本了哟~",
                content:
                  "新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~"
              });
            });
          }
        });
      } else {
        // 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
        wx.showModal({
          title: "提示",
          content:
            "当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。"
        });
      }
    },
    /* 登录验证(获取open_id,user_id) */
    /* 
          user_id和open_id 共同用一个接口请求
          先判断缓存内是否存在 user_id
            存在=> 放行
            不存在=> 判断是否存在open_id  
                存在open_id => 请求user_id
                不存在,=>请求 openid_+user_id
                  请求地址=> 跳转加载页
      */

    // 跳转加载页
    hr_guide() {
      wx.reLaunch({
        url: "/pages/guidePages/main"
      });
    },
    // 跳转首页

    hr_index() {
      wx.reLaunch({
        url: "/pages/index/main"
      });
    },
    // 获取用户type
    getMemberType() {
      wx.login({
        success: res => {
          if (res.code) {
            this.$ajax("/home/login/wxLogin", "post", {
              code: res.code
            })
              .then(rus => {
                if (rus.status) {
                  wx.setStorageSync("member_type", rus.member_type); //获取到staff_type,存入缓存(用于获取手机号)
                } else {
                  console.log("获取user_id,open_id出错");
                  this.$toast({
                    content: "获取user_id,open_id出错"
                  });
                }
              })
              .catch(err => {});
          }
        },
        fail() {
          wx.showLoading({
            title: "登录接口失败",
            mask: true
          });
        }
      });
    },
    getOpenid() {
      // 登录验证
      let that = this;
      let member_id = wx.getStorageSync("member_id");
      // let open_id = wx.getStorageSync("open_id");
      if (member_id == "") {
        wx.login({
          success: res => {
            if (res.code) {
              this.$ajax("/home/login/wxLogin", "post", {
                code: res.code
              })
                .then(rus => {
                  console.log(rus);
                  if (rus.status) {
                    wx.setStorageSync("open_id", rus.open_id); //获取到open_id,存入缓存
                    wx.setStorageSync("member_id", rus.member_id); //获取到member_id,存入缓存
                    wx.setStorageSync("member_type", rus.member_type); //获取到member_type,存入缓存(用于获取手机号)
                    wx.setStorageSync("staff_type", rus.staff_type); //获取到staff_type,存入缓存(用于获取手机号)
                    this.$bus.$emit("getMemberInfo");
                  } else {
                    console.log("获取user_id,open_id出错");
                    this.$toast({
                      content: "获取user_id,open_id出错"
                    });
                  }
                })
                .catch(err => {});
            }
          },
          fail() {
            wx.showLoading({
              title: "登录接口失败",
              mask: true
            });
          }
        });
      } else {
        this.$bus.$emit("getMemberInfo");
      }
    }
  },

  log() {
    console.log(`log at:${Date.now()}`);
  },
  onLaunch(e) {
    this.getMemberType();
    this.appSet();
    this.getOpenid();
  }
};
</script>

<style >
</style>
